﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.   Text;
using System.Threading.Tasks;

namespace Urgencias.Modelo
{
    class Medico:Funcionario
    {
        private string especialidadMedico;

        public string EspecialidadMedico
        {
            get { return especialidadMedico; }
            set { especialidadMedico = value; }
        }

        public System.Collections.Generic.List<ConsultaMedica> atencionDeEncargado;

        /// <summary>
        /// Property for collection of ConsultaMedica
        /// </summary>
        /// <pdGenerated>Default opposite class collection property</pdGenerated>
        public System.Collections.Generic.List<ConsultaMedica> AtencionDeEncargado
        {
            get
            {
                if (atencionDeEncargado == null)
                    atencionDeEncargado = new System.Collections.Generic.List<ConsultaMedica>();
                return atencionDeEncargado;
            }
            set
            {
                RemoveAllAtencionDeEncargado();
                if (value != null)
                {
                    foreach (ConsultaMedica oConsultaMedica in value)
                        AddAtencionDeEncargado(oConsultaMedica);
                }
            }
        }

        /// <summary>
        /// Add a new ConsultaMedica in the collection
        /// </summary>
        /// <pdGenerated>Default Add</pdGenerated>
        public void AddAtencionDeEncargado(ConsultaMedica newConsultaMedica)
        {
            if (newConsultaMedica == null)
                return;
            if (this.atencionDeEncargado == null)
                this.atencionDeEncargado = new System.Collections.Generic.List<ConsultaMedica>();
            if (!this.atencionDeEncargado.Contains(newConsultaMedica))
                this.atencionDeEncargado.Add(newConsultaMedica);
        }

        /// <summary>
        /// Remove an existing ConsultaMedica from the collection
        /// </summary>
        /// <pdGenerated>Default Remove</pdGenerated>
        public void RemoveAtencionDeEncargado(ConsultaMedica oldConsultaMedica)
        {
            if (oldConsultaMedica == null)
                return;
            if (this.atencionDeEncargado != null)
                if (this.atencionDeEncargado.Contains(oldConsultaMedica))
                    this.atencionDeEncargado.Remove(oldConsultaMedica);
        }

        /// <summary>
        /// Remove all instances of ConsultaMedica from the collection
        /// </summary>
        /// <pdGenerated>Default removeAll</pdGenerated>
        public void RemoveAllAtencionDeEncargado()
        {
            if (atencionDeEncargado != null)
                atencionDeEncargado.Clear();
        }
        public System.Collections.Generic.List<ConsultaMedica> atencionDeAnestesista;

        /// <summary>
        /// Property for collection of ConsultaMedica
        /// </summary>
        /// <pdGenerated>Default opposite class collection property</pdGenerated>
        public System.Collections.Generic.List<ConsultaMedica> AtencionDeAnestesista
        {
            get
            {
                if (atencionDeAnestesista == null)
                    atencionDeAnestesista = new System.Collections.Generic.List<ConsultaMedica>();
                return atencionDeAnestesista;
            }
            set
            {
                RemoveAllAtencionDeAnestesista();
                if (value != null)
                {
                    foreach (ConsultaMedica oConsultaMedica in value)
                        AddAtencionDeAnestesista(oConsultaMedica);
                }
            }
        }

        /// <summary>
        /// Add a new ConsultaMedica in the collection
        /// </summary>
        /// <pdGenerated>Default Add</pdGenerated>
        public void AddAtencionDeAnestesista(ConsultaMedica newConsultaMedica)
        {
            if (newConsultaMedica == null)
                return;
            if (this.atencionDeAnestesista == null)
                this.atencionDeAnestesista = new System.Collections.Generic.List<ConsultaMedica>();
            if (!this.atencionDeAnestesista.Contains(newConsultaMedica))
            {
                this.atencionDeAnestesista.Add(newConsultaMedica);
                newConsultaMedica.AddAnestesista(this);
            }
        }

        /// <summary>
        /// Remove an existing ConsultaMedica from the collection
        /// </summary>
        /// <pdGenerated>Default Remove</pdGenerated>
        public void RemoveAtencionDeAnestesista(ConsultaMedica oldConsultaMedica)
        {
            if (oldConsultaMedica == null)
                return;
            if (this.atencionDeAnestesista != null)
                if (this.atencionDeAnestesista.Contains(oldConsultaMedica))
                {
                    this.atencionDeAnestesista.Remove(oldConsultaMedica);
                    oldConsultaMedica.RemoveAnestesista(this);
                }
        }

        /// <summary>
        /// Remove all instances of ConsultaMedica from the collection
        /// </summary>
        /// <pdGenerated>Default removeAll</pdGenerated>
        public void RemoveAllAtencionDeAnestesista()
        {
            if (atencionDeAnestesista != null)
            {
                System.Collections.ArrayList tmpAtencionDeAnestesista = new System.Collections.ArrayList();
                foreach (ConsultaMedica oldConsultaMedica in atencionDeAnestesista)
                    tmpAtencionDeAnestesista.Add(oldConsultaMedica);
                atencionDeAnestesista.Clear();
                foreach (ConsultaMedica oldConsultaMedica in tmpAtencionDeAnestesista)
                    oldConsultaMedica.RemoveAnestesista(this);
                tmpAtencionDeAnestesista.Clear();
            }
        }
    }
}
